通过前面章节介绍的中间表示(IR)生成，您已经可以实现编译器中所需的大部分功能。本章中，我们将讨论一些实际编译器中出现的主题，例如：许多现代语言都使用的异常处理，我们将研究如何将其转换为底层(LLVM)IR。\par

为了支持LLVM优化器在某些情况下生成更好的代码，我们向IR代码添加了额外的类型元数据，并附加调试元数据，使编译器的用户能够利用源代码级调试工具。\par

本章中，您将学习以下内容:\par

\begin{itemize}
\item 在抛出和捕获异常中，您将学习如何在编译器中实现异常处理
\item 在为基于类型的别名分析生成元数据中，将添加额外的元数据到LLVM IR，这有助于LLVM更好地优化代码。
\item 添加调试元数据，实现向生成的IR代码添加调试信息所需的类。
\end{itemize}

本章的最后，将了解关于异常处理和基于类型别名分析，以及调试信息的元数据的知识。\par






